/**
 * User: Egor Bondarenko
 * Date: 01/12/11
 */
package org.electronic.registration.model {
import mx.collections.ArrayCollection;

import org.electronic.registration.bo.Departament;
import org.electronic.registration.bo.Doctor;
import org.electronic.registration.event.DepartamentEvent;
import org.electronic.registration.event.Sed;
import org.electronic.registration.service.DoctorService;

public class DepartamentModel implements IDepartamentModel {

    private var _docService:DoctorService = new DoctorService();
    private var _doctors:ArrayCollection;


    public function DepartamentModel() {
    }

    public function loadData():void {
        _docService.getAllDoctors(function (result:Object):void {
            _doctors = ArrayCollection(result);
            formDataProvider();
        })

    }

    private function formDataProvider():void {
        var diagnosticData:ArrayCollection = new ArrayCollection();
        var surg:ArrayCollection = new ArrayCollection();
        var otol:ArrayCollection = new ArrayCollection();
        var rentgen:ArrayCollection = new ArrayCollection();
        var oftop:ArrayCollection = new ArrayCollection();
        var stomat:ArrayCollection = new ArrayCollection();
        var cardioData:ArrayCollection = new ArrayCollection();
        for each(var doc:Doctor in _doctors) {
            if (doc.departament == Departament.DIAGNOSTIC) {
                diagnosticData.addItem(doc);
//            } else if (doc.departament == Departament.CARDIO) {
//                cardioData.addItem(doc);
            } else if (doc.departament == Departament.SURGERY) {
                surg.addItem(doc);
            } else if (doc.departament == Departament.OTOLARYNGOLIST) {
                otol.addItem(doc);
            } else if (doc.departament == Departament.RADIOLOGY) {
                rentgen.addItem(doc);
            } else if (doc.departament == Departament.OPHTHALMOLOGY) {
                oftop.addItem(doc);
            } else if (doc.departament == Departament.STOMATOLOGY) {
                stomat.addItem(doc);
            }
        }
        var dataProvider:ArrayCollection = new ArrayCollection([
            {fullName:"Діагностичне відділення", children:diagnosticData},
            {fullName:"Хірургічне відділення", children:surg},
            {fullName:"Рентгенологія", children:rentgen},
            {fullName:"Отоларінгологічне відділення", children:otol},
            {fullName:"Офтольмологія", children:oftop},
            {fullName:"Стоматологія", children:stomat}
//            {fullName:"Кардіологічне відділення", children:cardioData}
        ]);
        Sed.dispatch(new DepartamentEvent(DepartamentEvent.DEPARTAMENTS_LOADED, dataProvider));
    }
}
}
